Physical Training System and Method

ABSTRACT

Systems, methods, and computer-readable media for providing a physical training routine for a user are disclosed. One such method may include displaying a visual indicator indicating a movement to be completed by the user and determining whether the user completes the movement. The methods also include recording one or more characteristics of the movement and providing feedback to the user based on the one or more characteristics.

RELATED APPLICATION

The present application claims priority to U.S. Provisional PatentApplication No. 61/604,417, filed on Feb. 28, 2012, which is fullyincorporated herein by reference.

TECHNICAL FIELD

The present disclosure relates to methods, systems, andcomputer-readable media for providing physical training. Moreparticularly, the present disclosure relates to methods, systems, andcomputer-readable media for providing instant feedback and objectiveassessment of the effectiveness of the physical training.

BACKGROUND

In sports training, an athlete's training process is normally directedby a coach. The coach typically designs training sessions and monitorsthe athlete's performance. In this traditional framework, the assessmentof an athlete's performance largely depends on the coach's experience,judgment, and patience. It is often difficult for the athlete to receiveinstant feedback from the coach. In addition, the feedback may not bebased on objective measures. In physical therapy especiallyrehabilitation treatment, a physician often assesses a patient'scondition based on overall physical appearance. Subtle imperfections,such as slight imbalance between injured and non-injured legs, aredifficult to capture. Therefore, it is desirable to develop systems andmethods for providing instant feedback and objective assessment of theeffectiveness of physical training.

SUMMARY

Some disclosed embodiments may involve methods, systems, andcomputer-readable media for providing physical training to a user. Onesuch system may include a memory for storing a set of instructions. Thesystem may also include a processor communicatively connected to thememory. When executing the set of instructions, the processor may beconfigured to display a visual indicator on a display panel toindicating a movement to be completed by the user and determine whetherthe user completes the movement. Moreover, the processor may beconfigured to record one or more characteristics of the movement andprovide feedback to the user based on the one or more characteristics.

The preceding summary is not intended to restrict in any way the scopeof the claimed invention. In addition, it is to be understood that boththe foregoing general description and the following detailed descriptionare exemplary and explanatory only and are not restrictive of theinvention, as claimed.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of this specification, illustrate various embodiments and exemplaryaspects of the present invention and, together with the description,explain principles of the invention. In the drawings:

FIG. 1 is a schematic diagram of an exemplary physical training system,in accordance with some disclosed embodiments;

FIG. 2 is a schematic diagram of an exemplary controller, in accordancewith some disclosed embodiments;

FIG. 3 illustrates a block diagram of an exemplary physical trainingsystem, in accordance with some disclosed embodiments;

FIG. 4A is a schematic diagram of an exemplary sensor pad, in accordancewith some disclosed embodiments;

FIG. 4B is a schematic diagram of an exemplary sensor unit, inaccordance with some disclosed embodiments;

FIG. 5 is a flow chart of an exemplary method of determining timeduration of touching a sensor unit, in accordance with some disclosedembodiments; and

FIG. 6 shows an exemplary setup screen for performing an agility drill,in accordance with some disclosed embodiments.

DESCRIPTION OF EXEMPLARY EMBODIMENTS

Reference will now be made in detail to exemplary embodiments of theinvention, examples of which are illustrated in the accompanyingdrawings. When appropriate, the same reference numbers are usedthroughout the drawings to refer to the same or like parts.

Embodiments of the present disclosure may involve systems, methods, andcomputer readable media for providing physical training to a user. Asused herein, physical training may include physical condition testing,sports training, physical therapy, athletic performance training,recreational exercise, or a general purpose workout, etc. The physicaltraining may involve one or more physical movements of the body part(s)of the user, such as upper limbs, lower limbs, or whole body movements.A particular set of movements may be referred to as a “drill.” During atraining session, the user may perform one or more pre-set drills and/orcustomized drills. A customized drill may be built by the user fromscratch. Alternatively, a customized drill may be modified from apre-set drill.

FIG. 1 illustrates an exemplary training system 100. Training system 100may include a sensor pad 110. Sensor pad 110 may also be referred to asa touch board, a sensing board, etc. Sensor pad 110 may include one ormore sensor units 112. Sensor unit 112 may sense applied pressure orforce and provide signals indicating whether the sensor unit has beenpressed or touched. In some embodiments, sensor unit 112 may alsoprovide signals indicating the time duration of the pressure or forceapplied to the sensor unit 112.

Training system 100 may include a controller 120. Controller 120 mayinclude a general-purpose portable computing device such as a tablet, aPDA, a mobile phone, a laptop, or any other suitable computing apparatusequipped with a physical training software application. in someembodiments, controller 120 may include a dedicated computing device forproviding physical training functions.

Training system 100 may include a communication interface 130 to provideinformation exchange between controller 120 and sensor pad 110.Communication interface 130 may include a wired connection, e.g., via ahardware cable or wire, to provide a communication channel betweencontroller 120 and sensor pad 110. The hardware cable may includegeneral-purpose cables, such as USB cables. In some embodiments, thehardware cable may include some information processing functions. Forexample, the hardware cable may include built-in electronic chips toperform analog-to-digital signal conversion. In some embodiments,communication interface 130 may include a wireless connection, e.g., viaWiFi, Bluetooth, infrared, RF, near field communication, etc., toprovide a communication channel between controller 120 and sensor pad110.

In some embodiments, such as during a training session, controller 120may be placed on a supporting structure 140, such as a tripod, an thatcontroller 120 can be held at a proper height to receive input from andprovide feedback to the user. Supporting structure 140 may also includea rack, a cart, a hanging rod, or any other suitable means that can beused to hold controller 120 at a proper height. Supporting structure 140may be adjustable, flexible, moveable, rotatable, etc.

In some embodiments, training system 100 may include a network interface150 to connect controller 120 to a network 160. Network 160 may includeLAN, WAN, telecommunication network, Internet, VPN, etc. Networkinterface 150 may include wired and/or wireless connections, such asWiFi, Ethernet, 3G, 4G, LTE, etc. Controller 120 may exchangeinformation with other computers, such as servers or peers, throughnetwork 160.

In some embodiments, training system 100 may include a server 170 thatconnects to network 160. Server 170 may include a database 172 forstoring data related to one or more users of training system 1100.

FIG. 2 illustrates an exemplary controller 200. As shown in FIG. 2,controller 200 may include a display panel 202. Display panel 202 maydisplay video, image, and/or text information to a user. For example,display panel 202 may display one or more visual indicators 204. Visualindicator 204 may have various shapes (circle, square, triangle, etc),colors (yellow, red, green, blue, etc.), sizes, brightness, arrangements(different number of indicators in different row/column), etc. Visualindicator 204 may be individually rendered. For example, differentvisual indicators may have different colors, brightness, etc. Displaypanel 202 may also display one or more input buttons 206. In someembodiments, display panel 202 may include a touch-sensitive layerenabling controller 200 to receive input from a user when the usertouches display panel 202.

Controller 200 may also include one or more hard buttons 208, a powerswitch 212, a connector interface 210, a build-in camera 216, and awireless communication module 214. In some embodiments, connectorinterface 210 may be used to connect controller 200 to sensor pad 110through cable 130. In some embodiments, wireless communication module214 may be used to connect controller 200 to sensor pad 110 via, forexample, Bluetooth, WiFi, etc. In some embodiments, wirelesscommunication module 214 may be used to connect controller 200 tonetwork 160 via, for example, WiFi, 3G, 4G, UTE, etc.

FIG. 3 shows a block diagram of an exemplary physical training system.Consistent with some embodiments, the system may include a controller300. Controller 300 may be a general purpose computer such as a laptop,a portable computing device such as a tablet or a mobile phone, or acomputing device dedicated for physical training. As shown in FIG. 3,controller 300 may include a processor 310, a memory/storage module 320,a user input device 330, a display device 340, and a communicationinterface 350. Processor 310 can be a central processing unit (“CPU”) ora mobile processor. Depending on the type of hardware being used,processor 310 can include one or more printed circuit boards, and/or amicroprocessor chip. Processor 310 can execute sequences of computerprogram instructions to perform various methods that will be explainedin greater detail below.

Memory/storage module 320 can include, among other things, a randomaccess memory (“RAM”), a read-only memory (“ROM”), and a flash memory.The computer program instructions can be stored, accessed, and read fromthe ROM or flash, or any other suitable memory location, and loaded intothe RAM for execution by processor 310. For example, memory/storagemodule 320 may store an operating system 321, a software application322, and a database 323. Further, memory/storage module 320 may store anentire software application or only a part of a software applicationthat is executable by processor 310.

In some embodiments, software application 322 or portions of it may bestored on a computer readable medium, such as a hard drive, computerdisk, CD-ROM, DVD±R, CD±RW or DVD±RW, HD or Blu-ray DVD, flash drive, SDcard, memory stick, or any other suitable medium, and can be read andacted upon by processor 310 using routines that have been loaded tomemory/storage module 320.

In some embodiments, input device 330 and display device 340 may becoupled to processor 310 through appropriate interfacing circuitry. Insome embodiments, input device 330 may be a hardware keyboard, a keypad,or a touch screen, through which a user may input information tocontroller 300. Display device 340 may include one or more displayscreens that display the training interface, result, or any relatedinformation to the user.

Communication interface 350 may provide communication connections suchthat controller 300 may exchange data with external devices. Forexample, controller 300 may be connected to network 380 throughcommunication channel 390. Network 380 may be a LAN, a WAN, or theInternet. In some embodiments, controller 300 may be connected to anaccessory 360 through communication channel 370. Accessory 360 mayinclude, for example, sensor pad 110 or an external camera (not shown).

FIG. 4A is a schematic diagram of an exemplary sensor pad, in accordancewith some disclosed embodiments. Referring to FIG. 4A, sensor pad 400may include a number of sensor units 410 and an interface 420. Sensorunits 410 may be assigned predetermined identifiers, such as numbers1-5, as illustrated in FIG. 4A. It is noted that different number ofsensor units, different kinds of identifiers, and different manners ofidentifier assignment (e.g., the arrangement and order of theidentifiers) may also be used. Sensor pad 400 may provide signalsindicating whether a particular sensor unit is touched or pressed. Insome embodiment, sensor pad 400 may also provide signals indicating thetime duration of the pressure or force applied to the sensor pad 400.The signals may be sent to controller 120 (FIG. 1) through interface420.

FIG. 4B is a schematic diagram of an exemplary sensor unit, inaccordance with some disclosed embodiments. In FIG. 4B, the sensor unitincludes a top panel 412 and a bottom panel 414. When a user touches orpresses the sensor unit, top panel 412 moves downward toward thedashed-line position. Such position change may lead to a change ofresistance, which may be sensed by sensor 416. Sensor 416 may in turngenerate a signal indicating that the sensor unit has been touched orpressed, based on the resistance change, and output the signal tointerface 420 for communication with controller 120.

FIG. 5 is a flow chart of an exemplary method of determining timeduration of touching a sensor unit, in accordance with some disclosedembodiments. As shown in FIG. 5, method 500 may include a series ofsteps, some of them may be optional. In step 502, sensor 416 readsresistance of a subsequent sensor unit. For example, as shown in FIG.4A, the resistance of sensor units 1-5 may be read sequentially, and anext sensor unit may indicate, for example, sensor unit 5 after thesteps described in FIG. 5 has finished a cycle for sensor unit 4. Instep 504, the position of the sensor unit can be determined based on theresistance, For example, the resistance may be smaller when top panel412 moves DOWN than when top panel 412 moves UP. The UP/DOWN positioninformation can be saved. In step 506, it is determined if the positioninformation has been changed, compared with the previously savedposition information. If the position information has changed, the newposition can be sent to controller 120. In step 508, it is determined ifthe position has changed from UP to DOWN. If so, the new positionindicates that the sensor unit has been touched or pressed, and a timercan be adapted to measure the contact time. In step 510, it isdetermined if the position has changed from DOWN to UP. If so, the newposition indicates that the sensor unit has been released. The timer canbe stopped and the time duration of the pressure or force applied to thesensor unit, for example, can be saved. The process then returns to step502 to read the next sensor unit (e.g., sensor unit 1). Method 500 maybe initiated upon receiving a request from controller 120. Contact timeinformation may be sent to controller 120, once available.

In some embodiments, software application 320 may include a plurality ofpre-set drills for performing physical training Examples of pre-setdrills may include count drills, react drills, sequence drills, verticaldrills, and agility drills, as described herein. A user may also createa customized drill, a new category of drills, and/or a playlist ofdrills.

Count drills are designed to test and/or improve speed or quickness ofmovements. The user is instructed to perform pre-determined movementsduring count drills. In an exemplary count drill, controller 120 mayactivate one or more sensor units 112 (or all sensor units in someembodiments) on sensor pad 110. Controller 120 may record the totalnumber of touches on the activated sensor units during specific timedurations. Alternatively, controller 120 may record the time durationfor finishing a pre-set number of touches. The goal of the user is totouch the activated sensor units as quickly as possible. When the usertouches a sensor unit, the corresponding visual indicator may light upon display panel 202. The number of touches and/or the time (spendingand/or remaining) can be displayed on display panel 202 in real time.The user may be able to choose or program the pre-determined movements(e.g., type or manner of movements, sensor units to be activated,specific order of touches, etc.), number of touches to be accomplished,and/or me duration of the drill. In another example, the user can standon the front or back two sensor units (e.g., 1 and 2 or 4 and 5 in FIG.4A), and controller 120 may activate the two sensor units as a left anda right touch target. The number of left and right touches can bedisplayed separately on display panel 202 in real time. The time(spending and/or remaining) can also be displayed on display panel 202.Contac time may also be determined by, for example, method 500illustrated in FIG. 5.

React drills are designed to test and/or improve a user's speed ofreaction to visual indicators 204 displayed on display panel 202. In anexemplary react drill, a sequence of visual indicators 204 can beprogrammed to be displayed on display panel 202, and a user needs toreact to the visual indicators 204 and perform a series of movements,e.g., by touching the corresponding sensor units 112 on sensor pad 110.In some embodiments, the visual indicators can be assigned a certaincolor, and the user is instructed to react to the visual indicators withthe assigned color. In some embodiments, the visual indicators can beassigned different colors, and the user is instructed to react tocertain colors, but not others. The user reacts to the visual indicatorby touching the corresponding sensor unit as quickly as possible. If theuser correctly touches the corresponding sensor unit, controller 120 mayreceive a signal from sensor pad 110 indicating a corresponding sensorunit has been touched. Controller 120 may then determine that the userhas completed the expected movement and record a correct touch. If theuser touches an incorrect sensor unit that does not correspond to the“react to” visual indicator, or the user touches a sensor unitcorresponding to a “don't react to” visual indicator, or the user failsto touch the corresponding sensor unit fast enough (e.g., thereaction/response time is longer than a predetermined threshold),controller 120 may determine that the user does not complete theexpected movement and record an incorrect touch. The total number ofcorrect touches and the total number of incorrect touches can bedisplayed on display panel 202 in real time. The time (spending and/orremaining) can also be displayed on display panel 202. In someembodiments, response times may also be recorded. The response time maybe measured from the time the visual indicator first appears on displaypanel 202 to the time when the sensor unit (either a correct or anincorrect one) senses the responding/reacting touch. Contact time mayalso be determined by, for example, method 500 illustrated in FIG. 5.

The sequence of visual indicators in react drills may be randomlygenerated. In some embodiments, controller 120 may be configured suchthat the same order of visual indicators in a random sequence is notrepeated.

Visual indicators may be displayed in different manners, For example,the visual indicator may display in a solid mode, in which the visualindicator is being displayed until the user touches a sensor unit. Inanother example, the visual indicator may display a flash mode, in whichthe visual indicator illuminates for a pre-determined duration (e.g.,0.10 to 10.0 seconds in increments of 0.10 seconds) and then disappears,regardless of whether the user touches a sensor unit during this timeduration. If the user fails to touch the corresponding sensor unitduring the pre-determined time duration, the failure to touch will betreated as an incorrect touch or an incomplete movement.

In some embodiments, the react drill may include a flip mode. In theflip mode, the user is instructed to react to the opposite sensorcorresponding to the displayed visual indicator. In one embodiment, theuser may be instructed to react to a diagonally opposite sensor. Forexample, if the top right visual indicator appears on the display panel,the user should react to the sensor unit on the bottom left. In anotherembodiment, the user may be instructed to react to a lateral oppositesensor. For example, if the top right visual indicator appears on thedisplay panel, the user should react to the top left sensor unit. In yetanother embodiment, the user may be instructed to react to a linearopposite sensor. For example, if the top right visual indicator appearson the display panel, the user should react to the bottom right sensorunit.

Sequence drills are similar to react drills. One of the differences isthat instead of random sequences, pre-determined sequences of visualindicators are used in sequence drills. The pre-determined sequences canbe generated by the software application or by the user. The user maysetup a sequence by inputting a series of numbers indicating thecorresponding sensor units. The total number of sensor units in asequence may vary. For example, in some embodiments, the total numbermay be from 1-20. In sequence drills, the number of correct andincorrect touches can also be provided and displayed on display panel202 in real time, similar to that of the react drills. The time(spending and/or remaining) can also be displayed on display panel 202.Contact time may also be determined by, for example, method 500illustrated in FIG. 5.

In both react and sequence drills, a time delay can be set between theappearance of a visual indicator and the receiving of a user response(e.g., a correct touch or an incorrect touch). For example, a 2-3seconds delay may be added before the user responds to the visualindicator.

After a user finishes a drill, controller 120 may save result of thedrill. In some embodiments, controller 120 may provide comparative dataabout the current result and previous results of the user, therebyshowing whether the user's performance has been improved over time. Thecomparative data may be displayed on display panel 202 using a tabularview and/or a graphical view. The tabular view may include percentageimprovement or decrease, in addition to current result and past results.The graphical view may include bar/circle/curve graphicalrepresentations of the results comparisons.

Drills may be performed using either lower limbs (legs) or upper limbs(hands). In lower limb mode, sensor board 110 can be used to sense theuser's movements/touches. In upper limb mode, the user may perform thedrill by touching display panel 202 directly using his/her fingers.

Agility drills may be performed to test and/or improve the agility of auser. In an agility drill, the user responds to a sequence of arrowsdisplayed on display panel 202 and moves in the direction of the arrow.FIG. 6 shows an exemplary setup screen for performing an agility drillin an arrow sequence mode. In FIG. 6, eight arrows represent eightdirections identified by numbers 1 to 8. In the arrow sequence mode, theuser is able to program the sequence of the drill by inputting thesequence of numbers. Number 9 can be used as a wild card. Alternatively,in an arrow react mode, arrows may appear randomly.

The length of the agility drill can be programmed by time (e.g., 1second to 60 mins) or by arrow count (e.g., 1 to 20 arrows). The delaytime between the appearing of two adjacent arrows can also be programmed(e.g., from 1 to 20 seconds with incremental of 0.5 second).

Vertical drills may be performed to assess height of a user's jump. In avertical drill, the user stands on one or more of the sensor units,jumps, and lands on the same sensor unit. Controller 120 can detect theduration of time between the user's lift off from the sensor unit (e.g.,sensor unit released) and the user's next contact with the sensor unit(e.g., sensor unit compressed again). Contact time may also bedetermined by, for example, method 500 illustrated in FIG. 5. Bodyweight of the user can be taken into account to improve accuracy.Similar to those of count drills, the number of jumps and the time(spending and/or remaining) can be displayed on display panel 202 inreal time.

For every type of drills, the user can program the length of the drillby specify either the time duration of the drill or the target number oftouches. The target number of touches may include the number of correcttouches. the number of total touches (both correct and/or incorrect), orthe number of visual indicators appearing on the display panel.

Videos of a user performing a drill can be recorded. For example, avideo can be recorded using camera 216 (FIG. 2) that is equipped withcontroller 120. The recorded video may be provided to the user alongwith other performance data collected, for example, from sensor pad 110.

in some embodiments, sensor pad 110 may be replaced by a high speedcamera. For example, the high speed camera may he set up to synchronizewith controller 120 to monitor the user performing a drill. The user canplace any type of targets on the ground, e.g., a rubber mat, rubberdots, spray painted dots, etc., for the high speed camera to capture andregister the user's touch/contact actions or movements. In someembodiments, the camera can be used for gait testing and analysis,training and rehabilitation for high performance athletes, or generalrehabilitation patients.

In some embodiments, a user may create a use profile. The user profilemay include use data such as name, gender, age, height, weight, sports,position, injuries, etc. Performance data and videos of pre-set andcustomized drills may be saved based on user profiles. In someembodiments, performance data may be exported (e.g., as .csv files).

in some embodiments, an online database (e.g., database 172) may beprovided to users (e.g., for an annual fee or other suitable feestructures). The database may allow users to upload their saved drillresults for comparison with other users. Databases can be developed forthe general consumers, high school sports teams, collegiate sportsteams, professional teams, Olympic athletes, physical therapy clinics,sports medicine clinics, etc. Controller 120 may upload saved drillresults and the user profile data in order to compare the results. Auser profile may include fields for segregating, filtering, or targetingcertain user information, such as sports, position, professional level,demographic information to specific drills data and settings. Drillslisted in the online database may contain demo videos to display how thedrills should be performed.

Exemplary online databases include: (1) a performance database forindividuals, high schools and colleges to compare results to other usersaround the world; (2) a rehabilitation database for physical therapyclinics, collegiate/professional sports medicine staffs and sportsmedicine clinics; and (3) a high level athletic performance andrehabilitation database for professional sports teams or Olympic leveltraining facilities that includes normative data of athletes who possesssimilar performance abilities. The high level database may isolatenormative data from professional leagues, e.g., NBA, NFL, MLB, NHL, etc.

In the foregoing description of exemplary embodiments, various featuresare grouped together in a single embodiment for purposes of streamliningthe disclosure. This method of disclosure is not to be interpreted asreflecting an intention that the claims require more features than areexpressly recited in each claim. Rather, as the following claimsreflect, inventive aspects lie in less than all features of a singleforegoing disclosed embodiment. Thus, the following claims are herebyincorporated into this description of the exemplary embodiments, witheach claim standing on its own as a separate embodiment of theinvention.

Moreover, it will be apparent to those skilled in the art fromconsideration of the specification and practice of the presentdisclosure that various modifications and variations can be made to thedisclosed systems and methods without departing from the scope of thedisclosure, as claimed. Thus, it is intended that the specification andexamples be considered as exemplary only, with a true scope of thepresent disclosure being indicated by the following claims and theirequivalents.

What is claimed is:
 1. A system for providing a physical trainingroutine for a user, the system comprising: a memory for storing a set ofinstructions; and a processor communicatively connected to the memory,wherein when executing the set of instructions, the processor isconfigured to: display on a display panel a visual indicator indicatinga movement to be completed by the user; determine whether the usercompletes the movement; record one or more characteristics of themovement; and provide feedback. to the user based on the one or morecharacteristics.
 2. The system of claim 1, further comprising a sensorpad, wherein the processor is further configured to: receive a signalfrom the sensor pad; and determine whether the user completes themovement based on analysis of the signal.
 3. The system of claim 2,wherein the signal indicates whether the user touches an area of thesensor pad corresponding to the visual indicator.
 4. The system of claim1, further comprising a camera, wherein the processor is furtherconfigured to: receive a signal from the camera; and determine whetherthe user completes the movement based on analysis of the signal.
 5. Thesystem of claim 4, wherein the signal indicates whether the user touchesa registered area of the camera's field of view corresponding to thevisual indicator.
 6. The system of claim 1, wherein the processor isconfigured to: display visual indicators indicating a sequence ofmovements to be completed by the user; determine whether the usercompletes the sequence of movements; record one or more characteristicsof the sequence of movements; and provide feedback to the user based onthe one or more characteristics.
 7. The system of claim 6, wherein thesequence of movements is a predetermined sequence.
 8. The system ofclaim 6, wherein the sequence of movements is a random sequence.
 9. Thesystem of claim 6, wherein the one or more characteristics include atleast one of a total number of completed movements or a total number ofincomplete movements.
 10. The system of claim 1, wherein the one or morecharacteristics include a response time between displaying the visualindicator and completion of the movement.
 11. A method, implemented by aprocessor, for providing a physical training routine for a. user,comprising: displaying a visual indicator indicating a movement to becompleted by the user; determining, by the processor, whether the usercompletes the movement; recording, by the processor, one or morecharacteristics of the movement; and providing feedback to the userbased on the one or more characteristics.
 12. The method of claim 11,further comprising: receiving, from a sensor pad, a signal indicatingwhether the user touches an area of the sensor pad corresponding to thevisual indicator; and determining whether the user completes themovement based on analysis of the signal.
 13. The method of claim 11,further comprising: receiving, from a camera, a signal indicatingwhether the user touches a registered area of the camera's field of viewcorresponding to the visual indicator; and determining whether the usercompletes the movement based on analysis of the signal.
 14. The methodof claim 11, comprising: displaying visual indicators indicating asequence of movements to be completed by the user; determining whetherthe user completes the sequence of movements; recording one or morecharacteristics of the sequence of movements; and providing feedback tothe user based on the one or more characteristics.
 15. The method ofclaim 14, wherein the sequence of movements is a predetermined sequence.16. The method of claim 14, wherein the sequence of movements is arandom sequence.
 17. The method of claim 14, wherein the one or morecharacteristics include at least one of a total number of completedmovements or a total number of incomplete movements.
 18. The method ofclaim 11, wherein the one or more characteristics include a responsetime between displaying the visual indicator and completion of themovement.
 19. A computer-readable medium encoded with software codeinstructions, when executed by a processor, implementing a method forproviding a physical training routine for a user, the method comprising:displaying a visual indicator indicating a movement to be completed bythe user; determining, by the processor, whether the user completes themovement; recording, by the processor, one or more characteristics ofthe movement; and providing feedback to the user based on the one ormore characteristics.
 20. The computer-readable medium of claim 19,wherein the one or more characteristics include a response time betweendisplaying the visual indicator and completion of the movement.